/***************************Copyright QYKJ   2019-08-20*************************
文  件：	topic.h
说  明：	消息订阅发布定义头文件 在嵌入式系统中，加入信息发布/订阅系统模块。通过主题订阅的模式实现系统中各模块之间的分离,高度去耦。
编  写：	Unarty
修  改：	2019.08.20 创建 
            2021.08.24 修改订阅取消方法，将依据返回值取消订阅修改为删除接口主动取消，增加程序可理解性。
            增加推送返回参数，使用推送可依据此条件判断，主题当前订阅者数量。
            2022。07.27 修改推送函数指针上次修改还遗漏的修改
*******************************************************************************/
#ifndef __TOPIC_H
#define __TOPIC_H

#include "typedef.h"

typedef enum {
    T_ABC,
}Topic_e; //订阅主题



typedef void (*pushFun)(void *msg); //消息推送

void Topic_init(void);
void Cancel(Topic_e topic, pushFun subscriberss); //取消目标订阅
int Pushlisher(Topic_e topic, void *msg);   // 0: 无订阅者， 》0 总计消息订阅者数量。
int Subscriber(Topic_e topic, pushFun subscribers); // 0：订阅成功，-1 订阅主题添加失败，-2 订阅节点添加失败

#endif //__TOPIC_H.h end
/**************************Copyright Qiyi 2019-08-20*************************/
